#define _CRT_SECURE_NO_WARNINGS 1
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
using namespace std;
#define ll long long
//int t, n, arr[110];
//int main() {
//	cin >> t;
//	while (t--)
//	{
//		cin >> n;
//		int ans = 0;
//		int ok[110] = { 0 };
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> arr[i];
//		}
//		int cnt = 0;
//		while (1)
//		{
//			cnt++;
//			if (cnt == n)break;
//			if (arr[cnt]==1&&arr[cnt+1]==0)
//			{
//				int sum = 0;
//				for (int i = cnt+1; i <= n; i++)
//				{	
//					if (arr[n] == 0&&i==n)break;
//					if (arr[i] == 0)sum++;
//					else {
//						ans += sum;
//						break;
//					}
//				}
//			}
//		}
//		printf("%d\n", ans);
//	}
//	return 0;
//}


//int t, n, k;
//int a[200009];
//
//bool cmp(int a, int b) {
//	return a > b;
//}
//int main() {
//	cin >> t;
//	while (t--) {
//		cin >> n >> k;
//		int A = 0, B = 0;
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> a[i];
//		}
//		sort(a + 1, a + 1 + n, cmp);
//		for (int i = 1; i <= n; i++)
//		{
//			if (i % 2 == 1)A += a[i];
//			else if (k == 0)B += a[i];
//			else if (k > 0 && k >= a[i - 1] - a[i])B += a[i - 1], k -= a[i - 1] - a[i];
//			else B += a[i] + k, k = 0;
//
//		}
//		printf("%d\n", A - B);
//	}
//	return 0;
//}

//ll t, n;
//stack<ll> ans;
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		ll m = n, tmp = 0;
//		ans.push(n);
//		while (m > 0) {
//			tmp = m & -m;
//			if (n > tmp) ans.push(n - tmp);
//			m -= tmp;
//		}
//		printf("%lld\n", ans.size());
//		while (!ans.empty()) {
//			cout << ans.top() << ' ';
//			ans.pop();
//		}
//		printf("\n");
//	}
//	return 0;
//}

//ll t, n, m, ans[500010], cnt, tmp;
//ll lowbit(ll x) {
//	return x & -x;
//}
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		m = n, tmp = 0, cnt = 1, ans[1] = n;
//		while (m != 0) {
//			tmp = lowbit(m);
//			if (n - tmp > 0) ans[++cnt] = n - tmp;
//			m -= tmp;
//		}
//		cout << cnt << endl;
//		for (int i = cnt; i >= 1; i--) cout << ans[i] << " ";
//		cout << endl;
//	}
//	return 0;
//}

//int t, n, a[200005];
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		bool k = false;
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> a[i];
//			if ((a[1] & 1) != (a[i] & 1)) k = true;
//		}
//		if (k) {
//			cout << -1 << '\n';
//			continue;
//		}
//		int cnt = 1;
//		vector<int> ans;
//		for (;; cnt++) {
//			if (cnt > 40)break;
//			bool flag = false;
//			int maxn = 0, minn = 1e9;
//			for (int i = 1; i <= n; i++)
//			{
//				maxn = max(maxn, a[i]);
//				minn = min(minn, a[i]);
//				if (a[i] != 0) flag = true;
//			}
//			if (!flag)break;
//			int tmp = (maxn + minn) / 2;
//			ans.push_back(tmp);
//			for (int i = 1; i <= n; i++)
//			{
//				a[i] = abs(a[i] - tmp);
//			}
//		}
//		cout << --cnt << '\n';
//		for (auto x : ans)cout << x << ' ';
//		cout << '\n';
//	}
//	return 0;
//}3

//ll t, n, b[200010],a[200010];
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		memset(b, 0, sizeof(b));
//		for (int i = 1; i < n; i++) cin >> b[i];
//		a[1] = b[1];
//		bool flag = true;
//		for (int i = 2; i <= n; i++)
//		{
//			a[i] = b[i] | b[i - 1];
//		}
//		for (int i = 1; i <n; i++)
//		{
//			if ((a[i] & a[i + 1] )!= b[i]) flag = false;
//		}
//		if (!flag) printf("-1");
//		else for (int i = 1; i <= n; i++)
//		{
//			printf("%lld ", a[i]);
//		}
//		printf("\n");
//
//	}
//	return 0;
//}

//ll t, n, a[100010];
//int main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		cin >> n;
//		for (int i = 1; i <= n; i++)
//		{
//			cin >> a[i];
//		}
//	}
//	return 0;
//}

bool cmp(ll x, ll y) {
	return x > y;
}
ll t, n, a[100010],ans;
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> t;
	while (t--) {
		cin >> n;
		for (int i = 1; i <= n; i++) cin >> a[i];
		ans = 0;
		ll maxn = 0;
		for (int i = 2; i <= n; i++)
		{
			if (a[i] < a[i - 1]) {
				maxn = max(maxn, a[i - 1] - a[i]);
				ans += a[i - 1] - a[i];
				a[i] = a[i - 1];
			}
		}
		//sort(ks.begin(), ks.end(),cmp);
		//while (!ks.empty()) {
		//	int cnt = 0;
		//	int tmp = 0;
		//	for (int i = 0; i < ks.size(); i++)
		//	{
		//		tmp = ks.back();
		//		ks[i] -= ks.back();
		//		if (!ks[i]) cnt++;
		//	}
		//	ans += (ks.size() + 1)*tmp;
		//	for (int i = 1; i <= cnt; i++)
		//	{
		//		ks.pop_back();
		//	}
		//}
		
		cout << ans +maxn << '\n';
	}
	return 0;
}